USB is a standard for connecting a host, such as a Personal Computer, with an external hardware. The external hardware of a USB scheme physically connects with the host through a USB port of the host. The host supplies power to the external hardware through the USB port. If no signal is exchanged between the host and the external hardware during a predetermined time, the USB port operates in a selective suspend mode. The selective suspend mode is a mode for, when no signal is transmitted and received, reducing an amount of current consumption to 1 mA or less and, thus, saving a battery of the host. Additionally, the selective suspend mode of the USB port is disabled when an external input by a user is generated.
For example, a mouse is described below. If the mouse does not operate during a determined time, the mouse enters a selective suspend mode. At this time, if a user moves the mouse, that is, if there is an external input, the selective suspend mode is disabled. A general procedure for transiting to the selective suspend mode is described below. The USB device informs a device driver of the host regarding a status transition and then, the device driver informs a USB root hub driver regarding the status transition. Then, the USB root hub driver sends an acceptance request for status transition to other devices installed in its own port and, upon receiving an acceptance for status transition, informs the device driver of the acceptance for status transition. Then, the device driver again informs the USB device regarding the acceptance for status transition, and the USB device transits to the selective suspend mode. If the acceptance for status transition is not received during a set time, the USB device cannot transit to the selective suspend mode.
Alternatively, when there is a transition to a suspend status, a Windows OS of the host informs each device driver of the status transition. That is, the Windows OS enters a host suspend mode after sending a power status setup (SetPower) notification message to the device driver in a power manager within the Windows OS and making a corresponding USB device transit to ‘D3’ (that is, a power off status).
A power status of the USB device is mainly divided into a normal operation status (D0), an idle status (D2), and a power off status (D3). The ‘D0’ can transit to the ‘D2’ and ‘D3’, but the ‘D2’ and ‘D3’ are permitted to transit only to the ‘D0’. Thus, in the case of powering off the USB device, if the power status of the USB device is equal to ‘D2’, the USB device has to transit to the ‘D3’ after transiting to the ‘D0’.
However, if a USB device is equal to a USB network-device (such as a Worldwide Interoperability for Microwave Access (WiMAX) modem), when entering a host suspend status, a current Window OS enters a host suspend mode after sending a SetPower (D3) notification message to a USB driver. At this time, if a power status of the USB network-device is equal to ‘D2’, a status transition error takes place because it is not permitted to transit from the ‘D2’ to the ‘D3’ on a standard. Thus, a USB bus (that is, a USB driver) and Internet Protocol (IP) stack within the Windows OS maintain the ‘D2’ for the USB network-device. Thereafter, if the host transits to a normal status (D0), the USB network-devices are all restored to the normal status (D0). However, a problem exist in that, because the IP stack within the Windows OS recognizes that the USB network-device does not awake from a selective suspend mode, it fails to transmit packets generated in the host to the USB network-device.
In order to provide a solution to the above problem, a way not to support a selective suspend mode for a USB network-device has been proposed. However, in this case, a problem exists in that, because the USB network-device always operates in a normal mode, a battery consumption of a host greatly increases. Thus, there is a need for a way to support a selective suspend mode for a USB network-device with no trouble in interaction with a host OS.